.TH std::real(std::complex) 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::real(std::complex) \- std::real(std::complex)

.SH Synopsis
   Defined in header <complex>
   template< class T >
   T real( const std::complex<T>& z           \fI(until C++14)\fP
   );
   template< class T >
   constexpr T real( const                    \fI(since C++14)\fP
   std::complex<T>& z );
   Additional overloads \fI(since C++11)\fP
   Defined in header <complex>
   float       real( float f );

   double      real( double f );                            \fI(until C++14)\fP

   long double real( long double f );
   constexpr float       real( float
   f );                               \fB(1)\fP

   constexpr double      real( double                       \fI(since C++14)\fP
   f );                                                     (until C++23)
                                          (A)
   constexpr long double real( long
   double f );
   template< class FloatingPoint >
   constexpr FloatingPoint real(                            (since C++23)
   FloatingPoint f );
   template< class Integer >                                              \fI(until C++14)\fP
   double real( Integer i );
   template< class Integer >                  (B)
   constexpr double real( Integer i                                       \fI(since C++14)\fP
   );

   1) Returns the real part of the complex number z, i.e. z.real().

   A,B) Additional overloads are provided for all integer and
   floating-point types, which are treated as complex numbers with zero   \fI(since C++11)\fP
   imaginary part.

.SH Parameters

   z - complex value
   f - floating-point value
   i - integer value

.SH Return value

   1) The real part of z.
   A) f.
   B) static_cast<double>(i).

.SH Notes

   The additional overloads are not required to be provided exactly as (A,B). They only
   need to be sufficient to ensure that for their argument num:

     * If num has a
       standard
       (until C++23) floating-point type T, then std::real(num) has the same effect as
       std::real(std::complex<T>(num)).
     * Otherwise, if num has an integer type, then std::real(num) has the same effect
       as std::real(std::complex<double>(num)).

.SH See also

   real accesses the real part of the complex number
        \fI(public member function)\fP
   imag returns the imaginary part
        \fI(function template)\fP
   C documentation for
   creal
